package com.ls.server.service.model;

import reactor.core.publisher.Flux;

import java.util.List;
import java.util.Map;

import com.ls.server.domain.MCPEntity;

/**
 * 聊天模型客户端接口
 */
public interface ChatModelClient {

    /**
     * 发送聊天请求（同步）
     *
     * @param prompt 提示词
     * @param options 选项
     * @return 回复内容
     */
    String chat(String prompt, Map<String, Object> options);

    /**
     * 发送聊天请求（异步流式）
     *
     * @param prompt 提示词
     * @param options 选项
     * @return 回复内容流
     */
    Flux<String> chatStream(String prompt, Map<String, Object> options);

    /**
     * 获取模型名称
     *
     * @return 模型名称
     */
    String getModelName();

    /**
     * 初始化客户端
     *
     * @param apiKey API密钥
     * @param apiUrl API地址
     */
    void init(String apiKey, String apiUrl,String model);

    /**
     * 初始化客户端
     *
     * @param apiKey API密钥
     * @param apiUrl API地址
     */
    void init(String apiKey, String apiUrl,String model,MCPEntity mcpEntitie);


}
